Vision systems frequently entail detecting and tracking a subject's eyes in an image generated by a video camera. In the motor vehicle environment, for example, a camera can be used to generate an image of the driver's face, and portions of the image corresponding to the driver's eyes can be analyzed to assess drive gaze or drowsiness. See, for example, the U.S. Pat. Nos. 5,795,306; 5,878,156; 5,926,251; 6,097,295; 6,130,617; 6,243,015; 6,304,187; and 6,571,002, incorporated herein by reference.
While eye detection and tracking algorithms can work reasonably well in a controlled environment, they tend to perform poorly under real world imaging conditions where the lighting produces shadows and the subject's eyes can be occluded by eyeglasses, sunglasses or makeup. As a result, pixel clusters associated with the eyes tend to be grouped together with non-eye features and discarded when subjected to appearance-based testing. This problem occurs both in eye-detection routines that initially identify the subject's eyes, and in eye-tracking routines that track the eye location from one image frame to the next. Another problem concerns limitations on the processing throughput of the vision system as the detection and tracking routines increase in complexity. Accordingly, what is needed is an efficiently executed method of a processing a video image for reliably locating a subject's eyes under various lighting and occlusion conditions.